package com.xiaoh.dormitoryrepairreportbackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoh.dormitoryrepairreportbackend.model.dto.skill.SkillStatsResponse;
import com.xiaoh.dormitoryrepairreportbackend.model.entity.MaintenanceSkill;

import java.util.List;

/**
 * 维修工技能表 服务类
 */
public interface MaintenanceSkillService extends IService<MaintenanceSkill> {

    /**
     * 根据维修类别获取有该技能的维修工ID列表
     *
     * @param categoryId 维修类别ID
     * @return 维修工ID列表
     */
    List<Long> getMaintenanceIdsByCategoryId(Integer categoryId);

    /**
     * 获取维修工的技能类别列表
     *
     * @param userId 维修工用户ID
     * @return 技能类别ID列表
     */
    List<Integer> getCategoryIdsByUserId(Long userId);

    /**
     * 添加维修工技能
     *
     * @param userId     维修工用户ID
     * @param categoryId 维修类别ID
     * @return 是否成功
     */
    boolean addMaintenanceSkill(Long userId, Integer categoryId);

    /**
     * 删除维修工技能
     *
     * @param userId     维修工用户ID
     * @param categoryId 维修类别ID
     * @return 是否成功
     */
    boolean removeMaintenanceSkill(Long userId, Integer categoryId);

    /**
     * 获取技能统计信息
     *
     * @return 技能统计响应
     */
    SkillStatsResponse getSkillStats();
}
